Method and apparatus for utilizing an extensible markup language schema to define document parts for use in an electronic document

ABSTRACT

A method and apparatus are provided for utilizing an extensible markup language schema to define document parts for use in an electronic document. The method includes providing a glossary document accessible by one or more word processing application programs. The glossary document includes schema elements for defining one or more document parts for insertion in an electronic document. The method further includes receiving, in a properties element, properties associated with a document part. Each property defines the document part for use in the electronic document. The method further includes receiving, in a content element, content to be included in the document part.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation-in-part application of U.S. patent application Ser. No. 10/955,622 entitled “Method, System, And Computer-Readable Medium For Creating, Inserting, And Reusing Complex Document Parts In An Electronic Document,” the disclosure of which is expressly incorporated herein, in its entirety, by reference.

BACKGROUND OF THE INVENTION

Modern word processors enable a user to readily create electronic documents. Many modern word processors include templates to facilitate the insertion of “document parts” which are typical structural elements found in a variety of documents. These typical structural elements include such features as cover pages, headers and footers, and the like. A user of a word processing application program typically selects a desired document part from a template of similarly styled parts created by a template author and then inserts the selected document part in the document. Unfortunately, the creation and insertion of document parts in modern word processors presents a number of drawbacks to both the template author as well as the end user.

One drawback associated with the creation of document part templates for use in modern word processors is that the template author generally must undergo the time consuming task of creating each document part from scratch utilizing various graphical software tools to design and format each document part. One drawback associated with the insertion of document parts in a document by an end user is that the end user must depend on template authors to design suitable document parts for insertion (i.e., the typical end user lacks the design skill require to design or modify existing document parts). Another drawback associated with the insertion of document parts by an end user is that the end user must typically perform a series of steps so that the document part will fit the size and layout of the document in which it is inserted. For instance, to insert a cover page a user may perform one or more of the following time-consuming steps: 1. Insert a page break at the top of the document; 2. Center the test vertically in the page by using empty paragraph markers so that the title is displayed correctly; 3. Increase the font size of the title; 4. Add empty space to push text to the bottom of the page where the author's name and date will be displayed; 5. Right align the text and make it smaller.

It is with respect to these considerations and others that the various embodiments of the present invention have been made.

BRIEF SUMMARY OF THE INVENTION

In accordance with the present invention, the above and other problems are solved by a method and apparatus for utilizing an extensible markup language schema to define document parts for use in an electronic document. According to one aspect of the invention, a method includes providing a glossary document accessible by one or more word processing application programs. The glossary document includes schema elements for defining one or more document parts for insertion in an electronic document. The method further includes receiving, in a properties element, properties associated with a document part. Each property defines the document part for use in the electronic document. The method further includes receiving, in a content element, content to be included in the document part.

The properties element includes one or more child elements associated with the document part. These child elements include a name element for providing a name to be associated with the document part, a description element for providing a description of the document part, a style element for providing text describing a style for displaying the content to be included in the document part, and an InsertOptions element for providing a value identifying allowable content for insertion in the document part. The allowable content for insertion in a document part may include a paragraph, a page, or a section.

The schema may include a types element for identifying one or more types of document parts which may be inserted in the electronic document. The schema may also include a categories element for identifying one or more categories of document parts. The schema may also include a global format element for defining a global format to be applied to each document part inserted in the electronic document.

The invention may be implemented as a computer process, a computing system, or as an article of manufacture such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.

These and various other features, as well as advantages, which characterize the present invention, will be apparent from a reading of the following detailed description and a review of the associated drawings.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a computer system architecture diagram illustrating a computer system utilized in and provided by the various embodiments of the invention;

FIG. 2 is a diagram of a schema structure including elements which may be utilized to manage document parts for use in an electronic document, according to the various embodiments of the invention; and

FIG. 3 is an illustrative routine for utilizing the schema structure of FIG. 2 to manage document parts for use in an electronic document, according to an illustrative embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Referring now to the drawings, in which like numerals represent like elements, various aspects of the present invention will be described. In particular, FIG. 1 and the corresponding discussion are intended to provide a brief, general description of a suitable computing environment in which embodiments of the invention may be implemented. While the invention will be described in the general context of program modules that execute in conjunction with program modules that run on an operating system on a personal computer, those skilled in the art will recognize that the invention may also be implemented in combination with other types of computer systems and program modules.

Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

Referring now to FIG. 1, an illustrative computer architecture for a computer 2 utilized in the various embodiments of the invention will be described. The computer architecture shown in FIG. 1 illustrates a conventional desktop or laptop computer, including a central processing unit 5 (“CPU”), a system memory 7, including a random access memory 9 (“RAM”) and a read-only memory (“ROM”) 11, and a system bus 12 that couples the memory to the CPU 5. A basic input/output system containing the basic routines that help to transfer information between elements within the computer, such as during startup, is stored in the ROM 11. The computer 2 further includes a mass storage device 14 for storing an operating system 16, application programs, and other program modules, which will be described in greater detail below.

The mass storage device 14 is connected to the CPU 5 through a mass storage controller (not shown) connected to the bus 12. The mass storage device 14 and its associated computer-readable media provide non-volatile storage for the computer 2. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the computer 2.

By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 2.

According to various embodiments of the invention, the computer 2 may operate in a networked environment using logical connections to remote computers through a network 18, such as the Internet. The computer 2 may connect to the network 18 through a network interface unit 20 connected to the bus 12. It should be appreciated that the network interface unit 20 may also be utilized to connect to other types of networks and remote computer systems. The computer 2 may also include an input/output controller 22 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown in FIG. 1). Similarly, an input/output controller 22 may provide output to a display screen, a printer, or other type of output device.

As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 14 and RAM 9 of the computer 2, including an operating system 16 suitable for controlling the operation of a networked personal computer, such as the WINDOWS XP operating system from MICROSOFT CORPORATION of Redmond, Wash. The mass storage device 14 and RAM 9 may also store one or more program modules. In particular, the mass storage device 14 and the RAM 9 may store a word processing application program 10. As known to those skilled in the art, the word processing application program 10 is operative to provide functionality for creating and editing electronic documents, such as document 24. According to one embodiment of the invention, the word processing application program 10 comprises the WORD word processing application program from MICROSOFT CORPORATION. It should be appreciated, however, that word processing application programs from other manufacturers may be utilized to embody the various aspects of the present invention. It should further be appreciated that the various aspects of the present invention are not limited to word processing application programs but may also utilize other application programs which are capable of processing text.

In conjunction with the editing of a word processing document, the word processing application program 10 provides functionality for allowing a user to create, insert, and reuse “document parts” into various locations in the document 24. As defined herein, document parts are preformatted structural elements or layouts which add structure to documents including, but not limited to, the following types and categories: cover pages, mathematical equations, indexes and tables (e.g., Table of Contents, Table of Figures, and Table of Authorities), page headers and footers, pages and sections (e.g., blank pages and two-column pages), personal contact information (e.g., name and address information), images, textboxes, AutoText, and watermarks. The document parts utilized by the word processing application program 40 may be stored in a glossary document 28 in an extensible markup language (“XML”) format. As is understood by those skilled in the art, XML is a standard format for communicating data. In the XML data format, a schema is used to provide XML data with a set of grammatical and data type rules governing the types and structure of data that may be communicated.

It will be appreciated that in addition to the categories discussed above, the glossary document 28 may also be used to create document parts and modify existing document parts. It will be appreciated that the document parts discussed above may also belong to a template designed by a professional template designer including customized document parts for use in an organization. The structure of the glossary document 28 will be discussed in greater detail with respect to FIG. 2, below.

Referring now to FIG. 2, a structure of an XML schema 200 used in the glossary document 28 will now be described. The XML schema 200 includes a glossaryDocument element 202. The glossaryDocument element 202 serves as a container document for all document parts in the glossary document and includes the child elements DocumentProperties 204, fonts 206, lists 208, styles 210, docPr (i.e., document properties) 212, types 214, and dataBoundXmlDoms 248. Each of these child elements will be described in greater detail below.

The DocumentProperties element 204 contains all of the properties used by documents created in the word processing application program 10. The fonts element 206 contains all of the fonts used by all of the document parts in the glossary document 28. The lists element 208 contains all of the lists used by all of the document parts in the glossary document 28. The styles element 210 contains all of the styles used by all of the document parts in the glossary document 28. The docPr element 212 contains the properties for the glossary document 28. The types element 214 contains all document parts types along with their respective categories and parts in the glossary document 28 or in a document parts template. For instance, the types element 214 may contain document part types including, but not limited to: Cover Pages, Headers (e.g., Page Numbers), Footers (e.g., Page Numbers), Letter AutoText, General AutoText, Personal Information, Tables, Textboxes, and Equations.

The types element 214 also includes a type element 216 which is a container for one type of document part. For instance, the type element 216 for Cover Pages may include cover page document parts such as academic cover pages, basic cover pages, etc. The type element 216 includes a name element 218 which contains the name for the type element 216. The name element 218 includes the attribute “val” for identifying the document part type. An illustrative syntax for the name element 218 is:

<name val=“Cover Pages”/>. If the document part type is a “built-in” type (i.e., a default document part type stored in the word processing application program 10), the name element 218 will display the default document part type name regardless of the name stored in the glossary document 28. The type element 216 also includes an id element 220 which contains the id of a built-in document part type. The id element 220 includes the attribute “val” for displaying the id for a document part type. An illustrative syntax for the id element 220 is: <id val=“{1B748C4B-8173-4380-8470-DAD7035CEFA8}”/>. The type element 216 also includes a categories element 222 which contains all document parts categories under the type, with their respective parts. For instance, the categories element 222 may contain a number of categories for the Letter AutoText type including, but not limited to: Attention Line, Closing, Mailing Instructions, Reference Line, Salutation, Subject Line, and Address Placeholders.

The categories element 222 also includes a category element 224 which is a container for one category of document part. The category element 224 includes a name element 226 which contains the name for the category element 224. The name element 226 includes the attribute “val” for identifying the category. If the document part type is a “built-in” category (i.e., a default document part category stored in the word processing application program 10), the name element 218 will display the default document part category name regardless of the name stored in the glossary document 28. The category element 224 also includes an id element 228 which contains the id of a built-in document part category. The id element 228 includes the attribute “val” for displaying the id for a document part category.

The category element 222 also includes a docParts element 230 which contains all of the document parts under a category. The docParts element 230 may also serve as a container for all of the document parts in a template. The docParts element 230 includes a docPart element 232 which contains a single document part. The docPart element 232 includes a docPartPr element 234 which is a container for all of the properties for the document part and a docPartBody element 246 which is a container for the content of the document part itself. The docPartPr element 234 includes several child elements which will be described in detail below.

The docPartPr element 234 includes an id element 236 for the document part and a name element 238 which contains the name for the docPart element 232. The name element 238 includes the attribute “val” for identifying the document part. An illustrative syntax for the name element 238 is: <name val=“Cover Page 1”/>. The docPartPr element 234 also includes a description element 240 for containing a description of the document part. The description element 240 includes the attribute “val” for describing the document part. An illustrative syntax for the description element 240 is: <description val=“Cover with centered title and name”/>. The docPartPr element 234 also includes a pStyle element 242 which contains the style of the document part. The pStyle element 242 includes the attribute “val” for identifying the style of the document part. An illustrative syntax for the pStyle element 242 is: <pStyle val=“Title”/>. The docPartPr element 234 also includes an insertOptions element 244 which contains insertion options for the document part. The insertion options include allowing only content, paragraphs, pages, or sections to be inserted in the document part. An illustrative syntax for the insertOptions element 244 is: <insertOptions>content</insertOptions>.

Referring now to FIG. 3, an illustrative routine 300 will be described illustrating a process for utilizing the XML schema in the glossary document 28 to define document parts for use in an electronic document. It should be appreciated that although the embodiments of the invention described herein are presented in the context of the word processing application program 10, the invention may be utilized in other types of application programs that support text processing.

When reading the discussion of the routines presented herein, it should be appreciated that the logical operations of various embodiments of the present invention are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations illustrated in FIG. 3, and making up the embodiments of the present invention described herein are referred to variously as operations, structural devices, acts or modules. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims set forth herein.

Referring now to FIG. 3, the routine 300 begins at operation 310, wherein a user opens the glossary document 28 to access the schema containing the document part elements discussed above in FIG. 2. In particular, the glossary document 28 may be opened in the word processing application program 10 view and edit the schema elements corresponding to document parts. It will be appreciated that in alternative embodiment of the invention, the schema or portions thereof may be obtained from a third party source and opened using a conventional text editor. In this manner, document parts may be edited and/or created without having to load the word processing application program 10.

The routine 300 continues from operation 310 at operation 320 where the global formatting element in the schema receives formatting for all of the document parts to be defined. For instance, a user may assign a font to the fonts element 206 so that a consistent font is applied to each document part defined in the schema. The routine 300 continues from operation 320 at operation 330 where the types element 214 receives one or more document types to be defined in the schema. In particular, a user may enter the types (e.g., Cover Pages, Headers, Footers, etc.) for each document part to be defined.

The routine 300 continues from operation 330 at operation 340 where the categories element 222 receives one or more categories for the document part types defined at operation 330. In particular, the categories element 222 allows a user to assign document types to categories. For instance, a user may assign a “Date and Time” category to the General AutoText document type.

The routine 300 continues from operation 340 at operation 350 where the DocPartPr element 234 receives document part properties for a document part. In particular a user defines a single document part by navigating to the DocPartPr element 234 and entering user values in the name element 238 to name the document part, the description element 240 to describe the document part, the pStyle element 242 to assign a style to the document part, and the insertOptions element 244 to define the type of content which may be inserted into the document part. The routine 300 continues from operation 350 at operation 360 where the docPartBody element 246 receives content (e.g., text) for the defined document part. In particular, the user may enter the content for the document part in the docPartBody element 246.

The routine 300 continues from operation 360 at operation 370 where the user decides if there are more document parts to be defined in the schema. If there are more document parts to be defined, the routine 300 returns to operation 350. If there are no more document parts to be defined, then the routine 300 then ends.

Based on the foregoing, it should be appreciated that the various embodiments of the invention include a method and apparatus for utilizing an extensible markup language schema to define document parts for use in an electronic document. It will be appreciated that by using the schema disclosed herein has a number of advantages over a user interface for defining document parts in an electronic document. One advantage is that the schema allows a user a more flexible way to define document parts without using the user interface. Another advantage is that utilization of the schema also enables a user to more efficiently add document parts to a collection or to create multiple templates by simply opening a file and inserting the appropriate XML directly into a glossary document.

The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended. 

1. A method for utilizing an extensible markup language schema to define document parts for use in an electronic document, comprising: (a) providing a glossary document accessible by one or more word processing application programs, the glossary document comprising a plurality of schema elements for defining one or more document parts; (b) receiving, in a properties element, a plurality of properties associated with a document part, wherein the plurality of properties define the document part for use in the electronic document; (c) receiving, in a content element, content to be included in the document part; and (d) repeating steps (b)-(c) for each document part to be defined.
 2. The method of claim 1, wherein the properties element comprises a plurality of child elements associated with the document part and wherein receiving properties associated with the document part comprises: receiving in a name element, a name to be associated with the document part; receiving in a description element, a description of the document part; receiving in a style element, text describing a style for displaying the content to be included in the document part; and receiving in an InsertOptions element, a value identifying allowable content for insertion in the document part.
 3. The method of claim 2, wherein receiving in an InsertOptions element, a value identifying allowable content comprises receiving a value identifying a paragraph.
 4. The method of claim 2, wherein receiving in an InsertOptions element, a value identifying allowable content comprises receiving a value identifying a page.
 5. The method of claim 2, wherein receiving in an InsertOptions element, a value identifying allowable content comprises receiving a value identifying a section.
 6. The method of claim 1 further comprising receiving, in a types element, one or more types of document parts for insertion in the electronic document.
 7. The method of claim 1 further comprising receiving, in a categories element, one or more categories of document parts for each document part type.
 8. The method of claim 6 further comprising receiving, in the types element, a plurality of properties associated with the one or more types of document parts.
 9. The method of claim 7 further comprising receiving, in the categories element, a plurality of properties associated with the one or more categories of document parts.
 10. The method of claim 1 further comprising receiving in a global format element in the schema file, a format for defining a global format to be applied to each document part inserted in the electronic document.
 11. A computer-readable medium having computer-executable instructions stored thereon which, when executed by a computer, will cause the computer to perform a method for utilizing an extensible markup language schema to define document parts for use in an electronic document, the method comprising: (a) providing a glossary document accessible by one or more word processing application programs, the glossary document comprising a plurality of schema elements for defining one or more document parts; (b) receiving, in a properties element, a plurality of properties associated with a document part, wherein the plurality of properties define the document part for use in the electronic document; (c) receiving, in a content element, content to be included in the document part; and (d) repeating steps (b)-(c) for each document part to be defined.
 12. The computer-readable medium of claim 11, wherein the properties element comprises a plurality of child elements associated with the document part and wherein receiving properties associated with the document part comprises: receiving in a name element, a name to be associated with the document part; receiving in a description element, a description of the document part; receiving in a style element, text describing a style for displaying the content to be included in the document part; and receiving in an InsertOptions element, a value identifying allowable content for insertion in the document part.
 13. The computer-readable medium of claim 12, wherein receiving in an InsertOptions element, a value identifying allowable content comprises receiving a value identifying a paragraph.
 14. The computer-readable medium of claim 12, wherein receiving in an InsertOptions element, a value identifying allowable content comprises receiving a value identifying a page.
 15. The computer-readable medium of claim 12, wherein receiving in an InsertOptions element, a value identifying allowable content comprises receiving a value identifying a section.
 16. The computer-readable medium of claim 11 further comprising receiving, in a types element, one or more types of document parts for insertion in the electronic document.
 17. The computer-readable medium of claim 11 further comprising receiving, in a categories element, one or more categories of document parts for each document part type.
 18. The computer-readable medium of claim 16 further comprising receiving, in the types element, a plurality of properties associated with the one or more types of document parts.
 19. The computer-readable medium of claim 17 further comprising receiving, in the categories element, a plurality of properties associated with the one or more categories of document parts.
 20. The computer-readable medium of claim 11 further comprising receiving in a global format element in the schema file, a format for defining a global format to be applied to each document part inserted in the electronic document. 